﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Mozlite.WebUI.Mvc4
{
    /// <summary>
    /// 模板页面基类。
    /// </summary>
    /// <typeparam name="TModel">模型类型。</typeparam>
    public abstract class ThemeWebViewPage<TModel> : WebViewPage<TModel>
    {
        /// <summary>
        /// 当前模板，其他模板需要重写。
        /// </summary>
        public virtual string Theme
        {
            get
            {
                return "default";
            }
        }

        /// <summary>
        /// 获取当前语言资源字符串。
        /// </summary>
        /// <param name="key">资源键对象。</param>
        /// <returns>返回资源字符串。</returns>
        public override string L(object key)
        {
            var resource = Cores.GetGlobalResourceByKey(key, Theme);
            if (resource.HasValue())
                return resource;
            return base.L(key);
        }

        /// <summary>
        /// 获取当前语言资源字符串。
        /// </summary>
        /// <param name="key">资源键对象。</param>
        /// <param name="args">格式化参数。</param>
        /// <returns>返回格式化后的资源字符串。</returns>
        public override string L(object key, params object[] args)
        {
            var resource = Cores.GetGlobalResourceByKey(key, Theme);
            if (resource.HasValue())
                return resource.FormatWith(args);
            return base.L(key, args);
        }
    }
}
